package com.woniuxy;

import java.util.*;

/**
 * @author 作者
 * @create 2025-09-11 10:31
 */
public class Test02 {
    public static void main(String[] args) {

    }

    private static void test10() {
        //        List<String> list1 = new ArrayList<>();
//        list1.add("aaa");
//        list1.add("bbb");
//        list1.add("ccc");
//        System.out.println(list1);
//        list1.remove(1);
//        System.out.println(list1);
//        list1.remove("ccc");
//        System.out.println(list1);

        List<Integer> list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        //2是下标还是元素
//        list.remove((Integer) 2);
        Integer num = list.remove(2);
        System.out.println(list);
        System.out.println(num);
        System.out.println(list);
        list.set(0,100);
        System.out.println(list);
    }

    private static void test09() {
        List<String> list1 = new ArrayList<>();
        list1.add("aaa");
        list1.add("bbb");
        list1.add("ccc");
//        Iterator<String> iterator = list1.iterator();
//        while (iterator.hasNext()) {
//            System.out.println(iterator.next());
//        }

        ListIterator<String> listIterator = list1.listIterator();
        while (listIterator.hasNext()) {
            System.out.println(listIterator.next());
        }
        while (listIterator.hasPrevious()) {
            System.out.println(listIterator.previous());
        }
    }

    private static void test08() {
        List<String> list1 = new ArrayList<>();
        list1.add("aaa");
        list1.add("bbb");
        list1.add("ccc");
        System.out.println(list1);
        list1.add(1, "xxx");
        System.out.println(list1);
        System.out.println(list1.get(1));
        System.out.println(list1.indexOf("aaa"));
        System.out.println(list1.indexOf("yyy"));
    }

    private static void test07() {
        Collection<String> list1 = new ArrayList<>();
        list1.add("aaa");
        list1.add("bbb");
        list1.add("ccc");
        list1.add("ddd");
        list1.add("eee");
        System.out.println(list1);
        list1.remove("ccc");
        System.out.println(list1);
        Collection<String> list2 = new ArrayList<>();
        list2.add("ddd");
        list2.add("eee");
        list2.add("xxx");
        list1.removeAll(list2);
        System.out.println(list1);
    }

    private static void test06() {
        Collection<String> list1 = new ArrayList<>();
        list1.add("aaa");
        list1.add("bbb");
        Collection<String> list2 = new ArrayList<>();
        list2.add("ccc");
        list2.add("ddd");
        System.out.println(list1);
        System.out.println(list2);
        list1.addAll(list2);
        System.out.println(list1);
//        list1.clear();
        System.out.println(list1);
        System.out.println(list1.contains("aaa"));
        System.out.println(list1.contains("xxx"));

        Collection<String> list3 = new ArrayList<>();
        list3.add("aaa");
        list3.add("bbb");
        list3.add("ccc");
        Collection<String> list4 = new ArrayList<>();
        list4.add("ccc");
        list4.add("xxx");
        System.out.println(list3.containsAll(list4));

        System.out.println(list4.size());
        System.out.println(list4.isEmpty());

        List<String> list5 = new ArrayList<>();
        System.out.println(list5.size());
        System.out.println(list5.isEmpty());
    }

    private static void test05() {
        Collection<Student> students = new ArrayList();
        students.add(new Student(1,"zs",11));
        students.add(new Student(2,"ls",12));
        students.add(new Student(3,"zs",13));
        Iterator<Student> iterator = students.iterator();
        while(iterator.hasNext()){
//            Student student = iterator.next();
//            System.out.println(student.getId());
//            System.out.println(student.getName());
            System.out.println(iterator.next().getId());
            System.out.println(iterator.next().getName());
        }
    }

    private static void test04() {
        Collection<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");

        Object[] array = list.toArray();
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
            list.add("xxx");
        }
        array = list.toArray();
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }


        System.out.println("使用增强for遍历集合");
        for (String str : list) {
            System.out.println(str);
            list.add("xxx");
            //不能添加元素
        }
        System.out.println("使用迭代器遍历集合");
        //获取当前集合对应的迭代器对象:使用迭代器遍历集合
        Iterator<String> iterator = list.iterator();
        //hasNext()判断是否存在下一个元素
        while (iterator.hasNext()) {
            //获取下一个元素
            String str = iterator.next();
            System.out.println(str);
//              迭代器遍历元素，不能添加元素
            //list.add("xxx");
        }
    }

    private static void test03() {
        List<String> list = new ArrayList<String>();
        list.add("a");
        list.add("ab");
        for (String s : list) {
            System.out.println(s.toUpperCase());
        }

        List<Integer> list1=new ArrayList<>();
    }

    private static void test02() {
        Collection list = new ArrayList();
        list.add("aaa");
        list.add("bbb");
        list.add('a');
        for (Object o : list) {
            if (o instanceof String str) {
                System.out.println(str.toUpperCase());
            }


        }
    }

    private static void test() {
        //定义集合
        Collection list = new ArrayList();
        //添加元素
        list.add("aaa");
        list.add(1);
        list.add('a');
        //遍历集合
        System.out.println("集合转数组，使用普通for遍历");
        Object[] array = list.toArray();
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + "\t");
        }
        System.out.println();
        System.out.println("集合转数组，使用增强for遍历");
        //for(数据类型 迭代变量 : 数组或集合)
        for (Object o : array) {
            System.out.print(o + "\t");
        }
        System.out.println();
        System.out.println("集合使用增强for遍历");
        for(Object o : list){
            System.out.print(o + "\t");
        }
        System.out.println();
    }
}
